package Servicios;

import Traductor.Traductor;
import ComandoServicio.ComandoObtenerListaServicio;
import Dominio.Cuenta;
import Dominio.Usuario;
import DominioWS.CuentaWS;
import DominioWS.UsuarioWS;
import Excepciones.ACMSoapExcepcion;
import Excepciones.FabricaExcepcionesSoap;
import FabricaComando.FabricaComandoServicio;

public class ModuloServicio implements IModuloServicio{

	/**
	 * Se encarga de obtener la lista de servicios que tiene asociado el usuario con el banco
	 */
	public CuentaWS[] obtenerListaServiciosWS( UsuarioWS parametro ) 
	throws ACMSoapExcepcion{
		CuentaWS[] listaServicio = null;
		try{
			/*CuentaWS servicio1 = new CuentaWS();
			servicio1.set_id(1);
			servicio1.set_montoDisponible("60.35");
			servicio1.set_alias("Telefono Fijo");
			
			CuentaWS servicio2 = new CuentaWS();
			servicio2.set_id(2);
			servicio2.set_montoDisponible("120.00");
			servicio2.set_alias("Celular");
			
			listaServicio[0] = servicio1;
			listaServicio[1] = servicio2;*/
			Usuario usuario = Traductor.traductorUsuario(parametro);
			ComandoObtenerListaServicio comando = 
				FabricaComandoServicio.crearComandoObtenerListaServicio(usuario);
			Cuenta[] resultado = comando.ejecutar();
			listaServicio = Traductor.traductorListaCuenta(resultado);
		}catch(Exception e){
			throw new 
			FabricaExcepcionesSoap().obtenerExcepcionSoap("Error inesperado", e);
		}
		return listaServicio;
	}
}
